package appvideo.logica;
import java.text.SimpleDateFormat;
import java.util.*;


//creamos la clase producto de la que heredan pelicula y videojuego

public abstract class Producto {
    
    // creamos los atributos de la clase producto
    private int id;
    private int codigo;
    private String nombre;
    private Proveedor proveedor;
    private Date fechacompra;
    private Tarifa tarifa;
    private String genero;

    public Producto(int id, int codigo, String nombre, Proveedor proveedor, Date fechacompra, Tarifa tarifa, String genero) {
        this.id = id;
        this.codigo = codigo;
        this.nombre = nombre;
        this.proveedor = proveedor;
        this.fechacompra = fechacompra;
        this.tarifa = tarifa;
        this.genero = genero;
    }
    public Producto(){
        
    }
    public Producto(int id){
            this.id=id;
    }
    public Producto(int codigo, String nombre, Proveedor proveedor, Date fechacompra, Tarifa tarifa, String genero) {
        this.codigo = codigo;
        this.nombre = nombre;
        this.proveedor = proveedor;
        this.fechacompra = fechacompra;
        this.tarifa = tarifa;
        this.genero = genero;
    }

    public Date getFechacompra() {
        return fechacompra;
    }

    public void setFechacompra(Date fechacompra) {
        this.fechacompra = fechacompra;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Proveedor getProveedor() {
        return proveedor;
    }

    public void setProveedor(Proveedor proveedor) {
        this.proveedor = proveedor;
    }

    public Tarifa getTarifa() {
        return tarifa;
    }

    public void setTarifa(Tarifa tarifa) {
        this.tarifa = tarifa;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
    

    public int getId() {
        return id;
    }
    
    public abstract void insertaProducto();
    public abstract void modificaProducto();
    public abstract List<Producto> visualizarProductos();
    public abstract void bajaProducto();
    public abstract Producto buscaProducto(Producto producto,int codigo);
    public abstract boolean compruebaCodigo(Producto producto,int codigo);

    @Override
    public String toString(){
        SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
        String fecha = sdf.format(fechacompra);
        String nombreprv = proveedor.getNombre();
        return "\nCodigo: "+codigo+"\nNombre: "+nombre+"\nProveedor: "+nombreprv+"\nFecha adquisision: "+fecha+"\nGenero: "+genero;
    }
   
    public String toStringSocio(){
        SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
        String fecha = sdf.format(fechacompra);  
        return "\nCodigo: "+codigo+"\nNombre: "+nombre+"\nGenero: "+genero;
    }
    
    
    @Override
    public boolean equals(Object o){
        Producto p= (Producto)o;
        if(this.getCodigo()==p.getCodigo())
            return true;
        else
            return false;
    }

}
